package com.yeskery.nut.extend.mcp.annotation;

import com.yeskery.nut.core.MediaType;
import com.yeskery.nut.extend.mcp.core.ResourceType;

import java.lang.annotation.*;

/**
 * Mcp资源注解
 * @author sprout
 * 2025-04-24 14:29
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface McpResource {

    /**
     * 资源类型
     * @return 资源类型
     */
    ResourceType type() default ResourceType.RESOURCE;

    /**
     * 资源路径
     * @return 资源路径
     */
    String value();

    /**
     * 资源名称
     * @return 资源名称
     */
    String name() default "";

    /**
     * 资源描述
     * @return 资源描述
     */
    String description() default "";

    /**
     * 资源MimeType，优先使用该属性，如果未设置，则使用mediaType属性的{@link MediaType#getValue()}mineType属性
     * @return 资源MimeType
     */
    String mimeType() default "";

    /**
     * 资源媒体类型
     * @return 资源媒体类型
     */
    MediaType mediaType() default MediaType.TEXT_PLAIN;
}
